# -*- coding: utf-8 -*-
import os
import glob, sys
import datetime as dt
import pandas as pd
import numpy as np
import ROScalc

fuel = int(sys.argv[1])

fuel_name = ['GR2', 'GR4', 'GR6', 'GR7', 'GR8',
             'GR9', 'SH2', 'SH3', 'SH5', 'SH7',
             'SH8', 'SH9', 'TU1', 'TU2', 'TU3',
             'TU5', 'TL3'] 

fires = pd.read_csv('../DATA/IberianPeninsila_fires_2001-2022.csv')
fires = fires[fires['Latitude']>35.].reset_index()


Attribution_piControl=pd.DataFrame({})
Attribution_ssp245=pd.DataFrame({})

for index in fires.index:

	data=fires['Data'][index]
	lon=fires['Longitude'][index]
	lat=fires['Latitude'][index]
	mun=fires['Municipio'][index]
	pro=fires['Provincia'][index]
	area=fires['Area'][index]

	result_dead_model1 = ROScalc.main(index,data,lat,lon,'EC-Earth3',fuel,'dead')
	result_live_model1 = ROScalc.main(index,data,lat,lon,'EC-Earth3',fuel,'live')
	result_all_model1 = ROScalc.main(index,data,lat,lon,'EC-Earth3',fuel,'all')

	result_dead_model2 = ROScalc.main(index,data,lat,lon,'CESM2-WACCM',fuel,'dead')
	result_live_model2 = ROScalc.main(index,data,lat,lon,'CESM2-WACCM',fuel,'live')
	result_all_model2 = ROScalc.main(index,data,lat,lon,'CESM2-WACCM',fuel,'all')

	result_dead_model3 = ROScalc.main(index,data,lat,lon,'MPI-ESM1-2-HR',fuel,'dead')
	result_live_model3 = ROScalc.main(index,data,lat,lon,'MPI-ESM1-2-HR',fuel,'live')
	result_all_model3 = ROScalc.main(index,data,lat,lon,'MPI-ESM1-2-HR',fuel,'all')

	result_dead_model4 = ROScalc.main(index,data,lat,lon,'MRI-ESM2-0',fuel,'dead')
	result_live_model4 = ROScalc.main(index,data,lat,lon,'MRI-ESM2-0',fuel,'live')
	result_all_model4 = ROScalc.main(index,data,lat,lon,'MRI-ESM2-0',fuel,'all')

	result_dead_model5 = ROScalc.main(index,data,lat,lon,'NorESM2-MM',fuel,'dead')
	result_live_model5 = ROScalc.main(index,data,lat,lon,'NorESM2-MM',fuel,'live')
	result_all_model5 = ROScalc.main(index,data,lat,lon,'NorESM2-MM',fuel,'all')


#         ros_f1, fmd_f1, fml_f1, fmel_f1, ros_piControl_f1, fmd_piControl_f1, fml_piControl_f1, fmel_piControl_f1, ros_ssp245_f1, fmd_ssp245_f1, fml_ssp245_f1, fmel_ssp245_f1  
#           0        1      2        3            4                  5                 6                7                 8              9             10             11        


	ros_obs = result_all_model1[0].copy()
	fmd	= result_all_model1[1]
	fml	= result_all_model1[2]
	fmel = result_all_model1[3]

	ros_dead_piControl_model1 = result_dead_model1[4]
	ros_dead_piControl_model2 = result_dead_model2[4]
	ros_dead_piControl_model3 = result_dead_model3[4]
	ros_dead_piControl_model4 = result_dead_model4[4]
	ros_dead_piControl_model5 = result_dead_model5[4]

	ros_live_piControl_model1 = result_live_model1[4]
	ros_live_piControl_model2 = result_live_model2[4]
	ros_live_piControl_model3 = result_live_model3[4]
	ros_live_piControl_model4 = result_live_model4[4]
	ros_live_piControl_model5 = result_live_model5[4]

	ros_all_piControl_model1 = result_all_model1[4]
	ros_all_piControl_model2 = result_all_model2[4]
	ros_all_piControl_model3 = result_all_model3[4]
	ros_all_piControl_model4 = result_all_model4[4]
	ros_all_piControl_model5 = result_all_model5[4]

	fmd_piControl_model1 = result_all_model1[5]
	fmd_piControl_model2 = result_all_model2[5]
	fmd_piControl_model3 = result_all_model3[5]
	fmd_piControl_model4 = result_all_model4[5]
	fmd_piControl_model5 = result_all_model5[5]

	fml_piControl_model1 = result_all_model1[6]
	fml_piControl_model2 = result_all_model2[6]
	fml_piControl_model3 = result_all_model3[6]
	fml_piControl_model4 = result_all_model4[6]
	fml_piControl_model5 = result_all_model5[6]

	fmel_piControl_model1 = result_all_model1[7]
	fmel_piControl_model2 = result_all_model2[7]
	fmel_piControl_model3 = result_all_model3[7]
	fmel_piControl_model4 = result_all_model4[7]
	fmel_piControl_model5 = result_all_model5[7]

	ros_dead_ssp245_model1 = result_dead_model1[8]
	ros_dead_ssp245_model2 = result_dead_model2[8]
	ros_dead_ssp245_model3 = result_dead_model3[8]
	ros_dead_ssp245_model4 = result_dead_model4[8]
	ros_dead_ssp245_model5 = result_dead_model5[8]

	ros_live_ssp245_model1 = result_live_model1[8]
	ros_live_ssp245_model2 = result_live_model2[8]
	ros_live_ssp245_model3 = result_live_model3[8]
	ros_live_ssp245_model4 = result_live_model4[8]
	ros_live_ssp245_model5 = result_live_model5[8]

	ros_all_ssp245_model1 = result_all_model1[8]
	ros_all_ssp245_model2 = result_all_model2[8]
	ros_all_ssp245_model3 = result_all_model3[8]
	ros_all_ssp245_model4 = result_all_model4[8]
	ros_all_ssp245_model5 = result_all_model5[8]

	fmd_ssp245_model1 = result_all_model1[9]
	fmd_ssp245_model2 = result_all_model2[9]
	fmd_ssp245_model3 = result_all_model3[9]
	fmd_ssp245_model4 = result_all_model4[9]
	fmd_ssp245_model5 = result_all_model5[9]

	fml_ssp245_model1 = result_all_model1[10]
	fml_ssp245_model2 = result_all_model2[10]
	fml_ssp245_model3 = result_all_model3[10]
	fml_ssp245_model4 = result_all_model4[10]
	fml_ssp245_model5 = result_all_model5[10]

	fmel_ssp245_model1 = result_all_model1[11]
	fmel_ssp245_model2 = result_all_model2[11]
	fmel_ssp245_model3 = result_all_model3[11]
	fmel_ssp245_model4 = result_all_model4[11]
	fmel_ssp245_model5 = result_all_model5[11]

	Attr_piC=pd.DataFrame({'Date':data,'Municipaliy':mun,'Province':pro,'Longitude':lon,'Latitude':lat,'Area':area,
			'ROS_obs':float(ros_obs),
			'ROS_all_model1':float(ros_all_piControl_model1),
			'ROS_live_model1':float(ros_live_piControl_model1),
			'ROS_dead_model1':float(ros_dead_piControl_model1),
			'ROS_all_model2':float(ros_all_piControl_model2),
			'ROS_live_model2':float(ros_live_piControl_model2),
			'ROS_dead_model2':float(ros_dead_piControl_model2),
			'ROS_all_model3':float(ros_all_piControl_model3),
			'ROS_live_model3':float(ros_live_piControl_model3),
			'ROS_dead_model3':float(ros_dead_piControl_model3),
			'ROS_all_model4':float(ros_all_piControl_model4),
			'ROS_live_model4':float(ros_live_piControl_model4),
			'ROS_dead_model4':float(ros_dead_piControl_model4),
			'ROS_all_model5':float(ros_all_piControl_model5),
			'ROS_live_model5':float(ros_live_piControl_model5),
			'ROS_dead_model5':float(ros_dead_piControl_model5),
			'fm_dead':float(fmd),
			'fm_live':float(fml),
			'fme_live':float(fmel),
			'fm_dead_model1':float(fmd_piControl_model1),
			'fm_live_model1':float(fml_piControl_model1),
			'fme_live_model1':float(fmel_piControl_model1),
			'fm_dead_model2':float(fmd_piControl_model2),
			'fm_live_model2':float(fml_piControl_model2),
			'fme_live_model2':float(fmel_piControl_model2),
			'fm_dead_model3':float(fmd_piControl_model3),
			'fm_live_model3':float(fml_piControl_model3),
			'fme_live_model3':float(fmel_piControl_model3),
			'fm_dead_model4':float(fmd_piControl_model4),
			'fm_live_model4':float(fml_piControl_model4),
			'fme_live_model4':float(fmel_piControl_model4),
			'fm_dead_model5':float(fmd_piControl_model5),
			'fm_live_model5':float(fml_piControl_model5),
			'fme_live_model5':float(fmel_piControl_model5)
			},index={index})

	Attr_ssp245=pd.DataFrame({'Date':data,'Municipaliy':mun,'Province':pro,'Longitude':lon,'Latitude':lat,'Area':area,
			'ROS_obs':float(ros_obs),
			'ROS_all_model1':float(ros_all_ssp245_model1),
			'ROS_live_model1':float(ros_live_ssp245_model1),
			'ROS_dead_model1':float(ros_dead_ssp245_model1),
			'ROS_all_model2':float(ros_all_ssp245_model2),
			'ROS_live_model2':float(ros_live_ssp245_model2),
			'ROS_dead_model2':float(ros_dead_ssp245_model2),
			'ROS_all_model3':float(ros_all_ssp245_model3),
			'ROS_live_model3':float(ros_live_ssp245_model3),
			'ROS_dead_model3':float(ros_dead_ssp245_model3),
			'ROS_all_model4':float(ros_all_ssp245_model4),
			'ROS_live_model4':float(ros_live_ssp245_model4),
			'ROS_dead_model4':float(ros_dead_ssp245_model4),
			'ROS_all_model5':float(ros_all_ssp245_model5),
			'ROS_live_model5':float(ros_live_ssp245_model5),
			'ROS_dead_model5':float(ros_dead_ssp245_model5),
			'fm_dead':float(fmd),
			'fm_live':float(fml),
			'fme_live':float(fmel),
			'fm_dead_model1':float(fmd_ssp245_model1),
			'fm_live_model1':float(fml_ssp245_model1),
			'fme_live_model1':float(fmel_ssp245_model1),
			'fm_dead_model2':float(fmd_ssp245_model2),
			'fm_live_model2':float(fml_ssp245_model2),
			'fme_live_model2':float(fmel_ssp245_model2),
			'fm_dead_model3':float(fmd_ssp245_model3),
			'fm_live_model3':float(fml_ssp245_model3),
			'fme_live_model3':float(fmel_ssp245_model3),
			'fm_dead_model4':float(fmd_ssp245_model4),
			'fm_live_model4':float(fml_ssp245_model4),
			'fme_live_model4':float(fmel_ssp245_model4),
			'fm_dead_model5':float(fmd_ssp245_model5),
			'fm_live_model5':float(fml_ssp245_model5),
			'fme_live_model5':float(fmel_ssp245_model5)
			},index={index})


	Attribution_piControl=pd.concat([Attribution_piControl,Attr_piC])
	Attribution_ssp245=pd.concat([Attribution_ssp245,Attr_ssp245])

	del Attr_piC, Attr_ssp245

	print('{:.3f} %'.format(float(index/fires.index.size)*100.))

for column in Attribution_piControl.columns[3:]:
	Attribution_piControl[column] = Attribution_piControl[column].astype('float32').map('{:.5f}'.format)
	Attribution_ssp245[column] = Attribution_ssp245[column].astype('float32').map('{:.5f}'.format)

Attribution_piControl.to_csv('../OUTS/Attribution_piControl_'+fuel_name[fuel]+'.csv')
Attribution_ssp245.to_csv('../OUTS/Attribution_ssp245_'+fuel_name[fuel]+'.csv')
